Share via


Clase T> System.Collections.ObjectModel.ObservableCollection<

En este artículo se proporcionan comentarios adicionales a la documentación de referencia de esta API.

La ObservableCollection<T> clase representa una colección de datos dinámica que proporciona notificaciones cuando se agregan o quitan elementos, o cuando se actualiza toda la lista.

En muchos casos, los datos con los que se trabaja son una colección de objetos . Por ejemplo, un escenario común en el enlace de datos es usar un ItemsControl como , ListBoxListViewo TreeView para mostrar una colección de registros.

Puede enumerar en cualquier colección que implemente la interfaz IEnumerable. Pero para poder configurar enlaces dinámicos para que las inserciones o las eliminaciones en la colección actualicen la interfaz de usuario automáticamente, la colección debe implementar la interfaz INotifyCollectionChanged. Esta interfaz expone el CollectionChanged evento , un evento que se debe generar cada vez que cambia la colección subyacente.

La ObservableCollection<T> clase es un tipo de colección de datos que implementa la INotifyCollectionChanged interfaz .

Antes de implementar su propia colección, considere la posibilidad de usar ObservableCollection<T> o una de las clases de colección existentes, como List<T>, Collection<T> y BindingList<T>, entre muchas otras. Si tiene un escenario avanzado y desea implementar su propia colección, considere la posibilidad de usar IList, que proporciona una colección no genérica de objetos a los que el índice puede tener acceso individualmente. La implementación IList proporciona el mejor rendimiento con el motor de enlace de datos.

Nota:

Para admitir completamente la transferencia de valores de datos de objetos de origen de enlace a destinos de enlace, cada objeto de la colección que admita propiedades enlazables debe implementar un mecanismo de notificación de cambio de propiedad adecuado, como la INotifyPropertyChanged interfaz.

Para obtener más información, vea "Enlace a colecciones" en Información general sobre el enlace de datos.

Notas sobre el uso de XAML

ObservableCollection<T> se puede usar como elemento de objeto XAML en Windows Presentation Foundation (WPF), en las versiones 3.0 y 3.5. Sin embargo, el uso tiene limitaciones considerables.

  • ObservableCollection<T> debe ser el elemento raíz, ya que el x:TypeArguments atributo que se debe usar para especificar el tipo restringido del genérico ObservableCollection<T> solo se admite en el elemento de objeto para el elemento raíz.

  • Debes declarar un x:Class atributo (lo que implica que la acción de compilación de este archivo XAML debe ser Page o alguna otra acción de compilación que compile el XAML).

  • ObservableCollection<T> está en un espacio de nombres y un ensamblado que no se asignan inicialmente al espacio de nombres XML predeterminado. Debe asignar un prefijo para el espacio de nombres y el ensamblado y, a continuación, usar ese prefijo en la etiqueta de elemento de objeto para ObservableCollection<T>.

Una manera más sencilla de usar ObservableCollection<T> funcionalidades de XAML en una aplicación es declarar su propia clase de colección personalizada no genérica que deriva de ObservableCollection<T>y la restringe a un tipo específico. A continuación, asigne el ensamblado que contiene esta clase y haga referencia a él como un elemento de objeto en el XAML.